home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / miscstat.arc / MLTLINRG.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-10-07  |  1.9 KB  |  90 lines

  1. 1  'MuLiple LINear ReGression
  2. 2  KEY OFF:SCREEN 0,1,0:WIDTH 40:COLOR 15,1,9:CLS
  3. 10   PRINT "MULTIPLE LINEAR REGRESSION"
  4. 20   PRINT 
  5. 30   DIM X(9),S(9),T(9),A(9,19)
  6. 40   PRINT "NUMBER OF KNOWN POINTS";
  7. 50   INPUT N:IF N=0 THEN 810
  8. 60   PRINT "NUMBER OF INDEPENDENT VARIABLES";
  9. 70   INPUT V
  10. 80  X(1) = 1
  11. 90   FOR I = 1 TO N
  12. 100   PRINT "POINT";I
  13. 110   FOR J = 1 TO V
  14. 120   PRINT "  VARIABLE";J;
  15. 130   INPUT X(J + 1)
  16. 140   NEXT J
  17. 150   PRINT "  DEPENDENT VARIABLE";
  18. 160   INPUT X(V + 2)
  19. 170   FOR K = 1 TO V + 1
  20. 180   FOR L = 1 TO V + 2
  21. 190  A(K,L) = A(K,L) + X(K) * X(L)
  22. 200  S(K) = A(K,V + 2)
  23. 210   NEXT L
  24. 220   NEXT K
  25. 230  S(V + 2) = S(V + 2) + X(V + 2) ^ 2
  26. 240   NEXT I
  27. 250   FOR I = 2 TO V + 1
  28. 260  T(I) = A(1,I)
  29. 270   NEXT I
  30. 280   FOR I = 1 TO V + 1
  31. 290   FOR J = I TO V + 1
  32. 300   IF A(J,I) <  > 0 THEN 340
  33. 310   NEXT J
  34. 320   PRINT "NO UNIQUE SOLUTION"
  35. 330   GOTO 810
  36. 340   FOR K = 1 TO V + 2
  37. 350  B = A(I,K)
  38. 360  A(I,K) = A(J,K)
  39. 370  A(J,K) = B
  40. 380   NEXT K
  41. 390  Z = 1 / A(I,I)
  42. 400   FOR K = 1 TO V + 2
  43. 410  A(I,K) = Z * A(I,K)
  44. 420   NEXT K
  45. 430   FOR J = 1 TO V + 1
  46. 440   IF J = I THEN 490
  47. 450  Z =  - A(J,I)
  48. 460   FOR K = 1 TO V + 2
  49. 470  A(J,K) = A(J,K) + Z * A(I,K)
  50. 480   NEXT K
  51. 490   NEXT J
  52. 500   NEXT I
  53. 510   PRINT 
  54. 520   PRINT "EQUATION COEFFICIENTS:"
  55. 525   PRINT "     CONSTANT: ";A(1,V + V)
  56. 530   FOR I = 2 TO V + 1
  57. 540   PRINT "VARIABLE("I - 1"): "A(I,V + 2)
  58. 550   NEXT I
  59. 560  P = 0
  60. 570   FOR I = 2 TO V + 1
  61. 580  P = P + A(I,V + 2) * (S(I) - T(I) * S(1) / N)
  62. 590   NEXT I
  63. 600  R = S(V + 2) - S(1) ^ 2 / N
  64. 610  Z = R - P
  65. 620  L = N - V - 1
  66. 630  I = P / V
  67. 640   PRINT 
  68. 650  I = P / R
  69. 660   PRINT "COEFFICIENT OF DETERMINATION (R^2): ";I
  70. 670   PRINT "COEFFICIENT OF MULTIPLE CORRELATION: "; SQR (I)
  71. 680   PRINT "STANDARD ERROR OF ESTIMATE: "; SQR ( ABS (Z / L))
  72. 690   PRINT 
  73. 700   PRINT "INTERPOLATION: (ENTER 0 TO END PROGRAM)"
  74. 710  P = A(1,V + 2)
  75. 720   FOR J = 1 TO V
  76. 730   PRINT "VARIABLE";J;
  77. 740   INPUT X
  78. 750   IF X = 0 THEN 810
  79. 760  P = P + A(J + 1,V + 2) * X
  80. 770   NEXT J
  81. 780   PRINT "DEPENDENT VARIABLE: "P
  82. 790   PRINT 
  83. 800   GOTO 710
  84. 810  PRINT:LOCATE 24,1:PRINT"PRESS <SPACE> TO RUN AGAIN";
  85. 820  LOCATE 25,1:PRINT"PRESS <ESC> TO EXIT";
  86. 830  K$=INKEY$:IF K$="" THEN 830
  87. 840  IF K$=" " THEN RUN
  88. 850  IF K$<>CHR$(27) THEN 830
  89. 10000  RUN"MENU
  90.